package org.jeecg.modules.user.withhold.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 支付宝协议表
 * @Author: jeecg-boot
 * @Date:   2021-06-22
 * @Version: V1.0
 */
@Data
@TableName("bike_member_withhold")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bike_member_withhold对象", description="支付宝协议表")
public class BikeMemberWithhold implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**用户id*/
	@Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
    private String userId;
	/**协议生效时间*/
    @ApiModelProperty(value = "协议生效时间")
    private String validTime;
	/**返回脱敏的支付宝账号*/
	@Excel(name = "返回脱敏的支付宝账号", width = 15)
    @ApiModelProperty(value = "返回脱敏的支付宝账号")
    private String alipayLogonId;
	/**协议失效时间*/

    @ApiModelProperty(value = "协议失效时间")
    private String invalidTime;
	/**签约主体类型。CARD:支付宝账号CUSTOMER:支付宝用户*/
	@Excel(name = "签约主体类型。CARD:支付宝账号CUSTOMER:支付宝用户", width = 15)
    @ApiModelProperty(value = "签约主体类型。CARD:支付宝账号CUSTOMER:支付宝用户")
    private String pricipalType;
	/**设备Id*/
	@Excel(name = "设备Id", width = 15)
    @ApiModelProperty(value = "设备Id")
    private String deviceId;
	/**签约主体标识。当principal_type为CARD 时，该字段为支付宝用户号;当principal_type为CUSTOMER 时，该字段为支付宝用户标识。一个用户 可能有多个支付宝账号，即多个支付宝用户号，但只有一个是支付宝用户标识。一个支付宝账号对应一个支付宝唯一用户号(以2088开头的16位纯数字组成)。*/
	@Excel(name = "签约主体标识。当principal_type为CARD 时，该字段为支付宝用户号;当principal_type为CUSTOMER 时，该字段为支付宝用户标识。一个用户 可能有多个支付宝账号，即多个支付宝用户号，但只有一个是支付宝用户标识。一个支付宝账号对应一个支付宝唯一用户号(以2088开头的16位纯数字组成)。", width = 15)
    @ApiModelProperty(value = "签约主体标识。当principal_type为CARD 时，该字段为支付宝用户号;当principal_type为CUSTOMER 时，该字段为支付宝用户标识。一个用户 可能有多个支付宝账号，即多个支付宝用户号，但只有一个是支付宝用户标识。一个支付宝账号对应一个支付宝唯一用户号(以2088开头的16位纯数字组成)。")
    private String principalId;
	/**签约协议的场景*/
	@Excel(name = "签约协议的场景", width = 15)
    @ApiModelProperty(value = "签约协议的场景")
    private String signScene;
	/**用户签约成功后的协议号*/
	@Excel(name = "用户签约成功后的协议号", width = 15)
    @ApiModelProperty(value = "用户签约成功后的协议号")
    private String agreementNo;
	/**签约第三方主体类型*/
	@Excel(name = "签约第三方主体类型", width = 15)
    @ApiModelProperty(value = "签约第三方主体类型")
    private String thirdPartyType;
	/**协议当前状态1. TEMP：暂存，协议未生效过；2. NORMAL：正常；3. STOP：暂停*/
	@Excel(name = "协议当前状态1. TEMP：暂存，协议未生效过；2. NORMAL：正常；3. STOP：暂停", width = 15)
    @ApiModelProperty(value = "协议当前状态1. TEMP：暂存，协议未生效过；2. NORMAL：正常；3. STOP：暂停")
    private String status;
	/**协议产品码*/
	@Excel(name = "协议产品码", width = 15)
    @ApiModelProperty(value = "协议产品码")
    private String personalProductCode;
	/**代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)*/
	@Excel(name = "代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)", width = 15)
    @ApiModelProperty(value = "代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)")
    private String externalAgreementNo;
	/**用户的芝麻信用 openId，供商 户查询用户芝麻信用使用*/
	@Excel(name = "用户的芝麻信用 openId，供商 户查询用户芝麻信用使用", width = 15)
    @ApiModelProperty(value = "用户的芝麻信用 openId，供商 户查询用户芝麻信用使用")
    private String zmOpenId;
	/**外部登录Id*/
	@Excel(name = "外部登录Id", width = 15)
    @ApiModelProperty(value = "外部登录Id")
    private String externalLogonId;
    @ApiModelProperty(value = "协议签约时间，格式为 yyyyMM-dd HH:mm:ss。")
    private String signTime;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**修改人*/
    @ApiModelProperty(value = "修改人")
    private String updateBy;
	/**修改时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String memo;
}
